import Vue from 'vue'
import App from './App.vue'
// 6.2 导入路由模块
import router from './router/index'

// 样式初始化
import './styles/reset.css'
import './styles/iconfont.css'

// 全局注册 Vant 组件 或者 函数
import { Toast } from 'vant'
import { Notify } from 'vant'
import { Image as VanImage } from 'vant'
import { Dialog } from 'vant'
import { NavBar } from 'vant'
import { Icon } from 'vant'
import { Uploader } from 'vant'
import { Field } from 'vant'
import { ActionSheet } from 'vant'
import { Tab, Tabs } from 'vant'
import { List } from 'vant'
import { PullRefresh } from 'vant'
import { Button } from 'vant'
import { SwipeCell } from 'vant'
import { Empty } from 'vant'

Vue.use(Empty)
Vue.use(SwipeCell)
Vue.use(Button)
Vue.use(PullRefresh)
Vue.use(List)
Vue.use(Tab)
Vue.use(Tabs)
Vue.use(ActionSheet)
Vue.use(Field)
Vue.use(Uploader)
Vue.use(Icon)
Vue.use(NavBar)
Vue.use(VanImage)
// console.log(typeof Toast);   // 轻提示是一个函数 function
// 全局注册 Toast 函数，会自动在 Vue 的 prototype 上挂载 $toast 方法，便于在组件内通过 this.$toast 调用。
Vue.use(Toast)
// 全局注册，组件内通过 this.$notify() 调用
Vue.use(Notify)
// 全局注册，组件内通过 this.$dialog() 调用
Vue.use(Dialog)

Vue.config.productionTip = false

import request from './utils/request'
// 全局过滤器 - 在任意组件都能调用
Vue.filter('imgUrl', (val) => {
  // 如果没有 http 开始，就需要拼接成完整的图片地址
  if (val.indexOf('http') === -1) {
    return request.defaults.baseURL + val
  } else {
    // 是 http 开头，就直接返回即可
    return val
  }
})
// 三元运算符 + 箭头函数 化简后一行代码即可
// Vue.filter('imgUrl', (val) => val.indexOf('http') === -1 ? request.defaults.baseURL + val : val)

// 通过过滤器实现时间的格式化处理
Vue.filter('formatDate', (val) => {
  // console.log(val)
  if (val) {
    return val.replace('T', ' ').replace('.000Z', '')
  }
})

new Vue({
  // 6.3 把路由实例添加到 Vue 中
  router,
  render: (h) => h(App),
}).$mount('#app')
